home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / glass / glass.lha / GLASS / tmpas / Makefile < prev    next >
Makefile  |  1991-02-14  |  5KB  |  230 lines

  1. # tm Pascal support make file
  2.  
  3. VERSION = 1
  4.  
  5. # debugging flags
  6. DBUG = -g
  7. LDFLAGS    = -g
  8.  
  9. # program extention
  10. # .ttp for GEMDOS
  11. # .exe for MSDOS
  12. EXT=
  13.  
  14. # Pascal compilation flags
  15. PFLAGS = $(SYSPFLAGS) $(DBUG)
  16.  
  17. # Some names of programs
  18. TM  = tm
  19. LINKER = pc
  20.  
  21. LIBS = $(PLIBLOC)
  22.  
  23. MAKEFILE = Makefile
  24.  
  25. DOC    = tmpas.tex plot.ds demo.pt democonf.t README CHANGELOG
  26.  
  27. DEMOFILES = plot.ds democonf.t demo.pt demo.p
  28.  
  29. JUNK = tmp core makelog testsep$(EXT) testmass$(EXT) testout testtmp stamp.t \
  30.     tmpas.aux tmpas.log tmpas.dvi tmpas.alw version.tex $(TMSRCS) $(TMHDRS) \
  31.     $(OBJS) tmp.p
  32.  
  33. TESTFILES = test.ds testdata testconf.t
  34.  
  35. DISTFILES = $(TMMODULES) $(TESTFILES) $(TESTSRCS) $(DOC) $(MAKEFILE)
  36.  
  37. TMMODULES = pasgvar.pt pasvar.pt pascode.pt pastype.pt pasneed.t paslib.pt \
  38.         paslib.ht pascode.ht
  39.  
  40. TMSRCS      = testcode.p testmass.p demo.p
  41.  
  42. TMHDRS      = testcode.h testtype.h
  43.  
  44. TESTSRCS    = testmass.pt testcode.ht testcode.pt testmain.p testtype.ht
  45.  
  46. OBJS = demo.o \
  47.         stringhandler.o \
  48.         testcode.o \
  49.         testmain.o \
  50.         testmass.o
  51.  
  52. #++ make module local start, do NOT touch this line. ++
  53. # Installation dependent make variables for ericv on HERMES 
  54.  
  55. # full path of the ESPRIT environment
  56. ESPRITDIR = /home1/forfun
  57.  
  58. #  BDIR     : bin directory
  59. BDIR = $(ESPRITDIR)/binA
  60.  
  61. #  IDIR     : include directory
  62. IDIR = $(ESPRITDIR)/include
  63.  
  64. #  LDIR     : library directory
  65. LDIR = $(ESPRITDIR)/libA
  66.  
  67.  
  68. NFULLDS = $(ESPRITDIR)/ds/nfullgl.ds
  69. NKERNDS = $(ESPRITDIR)/ds/nkerngl.ds
  70.  
  71. #  HOSTNAME : name of installation machine.
  72. HOSTNAME=hermes
  73.  
  74. # SYS     : name of operating system or machine type
  75. #     BSD    For generic BSD systems
  76. #     AVIION    For generic DG_UX systems
  77. #     HPUX    For all HP-UX systems
  78. #     SUN    For all SUN systems
  79. #     APOLLO    For all Apollo systems
  80. SYS = AVIION
  81.  
  82. # CLIBLOC : required C libraries
  83. CLIBLOC =
  84.  
  85. LINTLIBLOC =
  86.  
  87. PASLIBLOC =
  88.  
  89. # CBADADR : address that will cause a core-dump if read or written.
  90. CBADADR = 0
  91.  
  92. SYSLINTFLAGS = -hpac
  93. SYSCFLAGS = 
  94. SYSCPROFFLAGS =
  95. SYSCDBUGFLAGS =
  96. SYSPFLAGS =
  97. OFLAG= -O
  98. # Collection of host dependent make rules.
  99.  
  100. ### libinstall ###
  101. # MODULE    - module to install
  102. libinstall:
  103.     cp $(MODULE) $(LDIR)/$(MODULE)
  104.  
  105. ### includeinstall ###
  106. # MODULE    - module to install
  107. includeinstall:
  108.     cp $(MODULE) $(IDIR)/$(MODULE)
  109.  
  110. ### maninstall ###
  111. # MAN        - manual page to install
  112. maninstall:
  113.     cp $(MAN) /usr/man/manl
  114.  
  115. ### bininstall ###
  116. # MODULE    - module to install
  117. bininstall:
  118.     cp $(MODULE) $(BDIR)/$(MODULE)
  119.     strip $(BDIR)/$(MODULE)
  120.  
  121. ### arlibinstall ###
  122. # MODULE    - module to install
  123. arlibinstall:
  124.     cp $(MODULE) $(LDIR)/$(MODULE)
  125.  
  126. LINK.c=$(CC) 
  127. #++ make module local end, do NOT touch this line. ++
  128.  
  129. help :
  130.     @echo " Possible make targets:"
  131.     @echo "all        Create local running programs."
  132.     @echo "clean        Free disk space."
  133.     @echo "distfiles    List distribution files."
  134.     @echo "install        Install relevant files."
  135.     @echo "setup        Adapt sources to local situation."
  136.     @echo "test        Run tests."
  137.  
  138. #
  139. all: test$(EXT)
  140.  
  141. # Add rules for the programs themselves here.
  142.  
  143. # Testing is done in two parts: once as one big program
  144. # (resulting in executable 'testmass'), and once as two
  145. # separately compiled programs (resulting in executable 'testsep').
  146. test : testmass$(EXT) testsep$(EXT)
  147.     ./testmass$(EXT) <testdata > testtmp
  148.     ./testmass$(EXT) <testtmp > testout
  149.     diff testtmp testout
  150.     ./testsep$(EXT) <testdata > testtmp
  151.     ./testsep$(EXT) <testtmp > testout
  152.     diff testtmp testout
  153.  
  154. TESTSEPOBJS    = testcode.o testmain.o
  155. testsep$(EXT): $(TESTSEPOBJS)
  156.     $(LINKER) $(LDFLAGS) $(TESTSEPOBJS) $(LIBS) -o testsep$(EXT)
  157.  
  158. TESTMASSOBJS    = testmass.o
  159. testmass$(EXT): $(TESTMASSOBJS)
  160.     $(LINKER) $(LDFLAGS) $(TESTMASSOBJS) $(LIBS) -o testmass$(EXT)
  161.  
  162. # File containing date, time and version stamp
  163. stamp.t: Makefile $(TMMODULES)
  164.     echo '.set tmpasvers $(VERSION)' > stamp.t
  165.     echo '.set tmpasdate "'`date`'"' >> stamp.t
  166.     echo '.set tmpashost $(HOSTNAME)' >> stamp.t
  167.  
  168. install : stamp.t
  169.     cat stamp.t pasneed.t > $(LDIR)/pasneed.t
  170.     echo '.insert $$(libpath)$$(pathsep)pasneed.t' > instmp
  171.     cat stamp.t instmp paslib.pt > $(LDIR)/paslib.pt
  172.     cat stamp.t instmp pastype.pt > $(LDIR)/pastype.pt
  173.     cat stamp.t instmp pasvar.pt > $(LDIR)/pasvar.pt
  174.     cat stamp.t instmp pasgvar.pt > $(LDIR)/pasgvar.pt
  175.     cat stamp.t instmp pascode.pt > $(LDIR)/pascode.pt
  176.     rm -f instmp
  177.  
  178. clean:
  179.     rm -f $(JUNK)
  180.  
  181. distfiles:
  182.     @echo $(DISTFILES) | tr ' ' '\012'
  183.  
  184. setup:
  185.     modmake local ../make.local $(MAKEFILE)
  186.  
  187. # Non-standard make rules
  188.  
  189. version.tex : $(MAKEFILE)
  190.     echo "\\def\\version{$(VERSION)}" > version.tex
  191.  
  192. doc: version.tex $(DEMOFILES)
  193.     latex \\batchmode\\input{tmpas}
  194.  
  195. index: $(HDRS) $(SRCS)
  196.     ctags -wx $(HDRS) $(SRCS)
  197.  
  198. tags: $(HDRS) $(SRCS)
  199.     ctags $(HDRS) $(SRCS)
  200.  
  201. depend: $(TMSRCS) $(TMHDRS)
  202.     mkmf -I$(IDIR) -f $(MAKEFILE)
  203.  
  204. demo.p : plot.ds demo.pt democonf.t paslib.pt pascode.pt
  205.     tm plot.ds demo.pt | expand > demo.p
  206.  
  207. testmass.p : testmass.pt testconf.t test.ds $(TMMODULES)
  208.     $(TM) test.ds testmass.pt > testmass.p
  209.  
  210. testcode.p : testcode.pt testconf.t test.ds pascode.pt paslib.pt
  211.     $(TM) test.ds testcode.pt > testcode.p
  212.  
  213. testtype.h : testtype.ht testconf.t test.ds pastype.pt
  214.     $(TM) test.ds testtype.ht > testtype.h
  215.  
  216. testcode.h : testcode.ht testconf.t test.ds pascode.ht paslib.ht
  217.     $(TM) test.ds testcode.ht > testcode.h
  218.  
  219. .p.o:
  220.     ln $< $*.c
  221.     cc -E -I$(IDIR) -D$(SYS) $*.c | sed -e '/^#/d' >tmp.p
  222.     rm -f $*.c
  223.     pc -c $(PFLAGS) tmp.p
  224.     mv tmp.o $@
  225.     rm -f tmp.p
  226.  
  227. ###
  228. testcode.o: testtype.h
  229. testmain.o: testtype.h testcode.h
  230.